package com.xique.door.biz.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.door.bean.request.visitor.*;

/**
 * @author shd
 * @create 2022/2/26 10:32
 */
public interface IVisitorBizService {

    /**
     * 获取访客列表
     * @author shd
     * @date 2022/2/26 10:35
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult getVisitorList(VisitorListRequest request);

    /**
     * 添加访客
     * @author shd
     * @date 2022/2/26 10:50
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult addVisitor(VisitorAddRequest request);

    /**
     * 访客详情
     * @author shd
     * @date 2022/3/4 8:37
     * @param id
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult visitorDetail(Long id);

    /**
     * 编辑访客
     * @author shd
     * @date 2022/2/26 10:55
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult editVisitor(VisitorEditRequest request);

    /**
     * 改变访客状态
     * @author shd
     * @date 2022/3/9 14:28
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult changeVisitorStatus(VisitorEditRequest request);

    /**
     * 删除访客
     * @author shd
     * @date 2022/2/26 10:57
     * @param id
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult removeVisitor(Long id);

    /**
     * 审核访客
     * @author shd
     * @date 2022/2/26 10:59
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult verifyVisitor(VisitorVerifyRequest request);

    /**
     * 查询访客授权列表
     * @author shd
     * @date 2022/3/3 11:29
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult visitorAuthorizeList(VisitorAuthorizeListRequest request);

    /**
     * 同步访客
     * @author shd
     * @date 2022/3/5 14:35
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult syncVisitor(VisitorSyncRequest request);
}
